iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
AI Engineering

30 天探索 MCP:從基礎概念到實作系列 第 5

MCP Server 裡到底有什麼?Tools、Resources、Prompts

  • 分享至 

  • xImage
  •  

前幾篇我們先了解了 MCP 是什麼,也知道了 MCP 裡面的三個角色:Host、Client、Server,那麼 Server 建立好之後,裡面到底可以放什麼?
這篇就來認識 MCP 裡很重要的三個元件:

Tools、Resources、Prompts。


Tools

如果希望 AI 可以幫我們執行一些事情,就可以透過 Tool 來完成,例如:

  • 計算數學
  • 讀取檔案
  • 查詢資料庫
  • 呼叫 API
  • 操作 Git

簡單來說Tools就是:

提供給 AI 使用的工具。

例如我們可以在 Server 裡建立一個 hello

@mcp.tool()
def hello(name: str) -> str:
    return f"Hello, {name}!"

這裡的 @mcp.tool() 就是在告訴 MCP Server,這是一個可以提供給 Client 使用的 Tool,而 hello() 裡面的程式,就是這個 Tool 實際會執行的功能,所以原本只是一個普通的 Python 函式,加上 @mcp.tool() 後,就可以成為 MCP Tool。


Resources

Tool 比較像是做事情,而 Resource 比較像是提供資料,例如 MCP Server 可以提供:

專案文件
設定檔
資料庫內容
其他外部資料

Client 可以取得這些資料,再交給 AI 使用。

Tool 是做事情,Resource 是提供資料。


Prompts

Prompt 應該是大家比較熟悉的東西,就是給 AI 的提示。

在 MCP 中,也可以把一些常用的提示整理成 Prompt,讓 Client 可以取得並使用,例如:

分析這份文件
整理這個專案
幫我檢查這段程式碼

這些都可以事先設計成 Prompt 所以:

Prompt 是提供給 AI 使用的提示。


三個有什麼不同?

看到這裡,可以先簡單整理成:

元件 主要用途 理解
Tools 執行功能 做事情
Resources 提供資料 看資料
Prompts 提供提示 告訴 AI 怎麼做

也就是:

MCP Server
│
├── Tools
│   └── 執行功能
│
├── Resources
│   └── 提供資料
│
└── Prompts
    └── 提供提示

這三個就是之後學習 MCP 時會一直遇到的東西。


那 Tool 是怎麼被 MCP 發現的?

這裡可以回到我們剛剛建立的 hello Tool,當 MCP Client 連上 Server 後,會先向 Server 詢問:

「你有哪些 Tool?」

這就是我們剛剛在 MCP Inspector 裡看到的:

tools/list

Server 收到請求後,就會把目前提供的 Tool 告訴 Client

MCP Client
    ↓
tools/list
    ↓
MCP Server
    ↓
hello

所以 Client 才會知道:

這個 Server 有一個叫做 hello 的 Tool 可以使用。

這也是 MCP 很重要的一個地方,Client 不需要事先寫死每一個 Tool,而是可以從 Server 得知有哪些工具可以使用。


總結

今天認識了 MCP Server 裡面的三個主要元件,Tools、Resources、Prompts。,其中 Tool 是我們接下來會最常使用的部分,因為它可以讓 AI 實際執行功能,我們也透過 MCP Inspector 看到了 tools/list,確認 Client 可以從 Server 得知有哪些 Tool,下一篇,就正式來實作我們的第一個 MCP Tool。


上一篇
開始動手!建立我的第一個 MCP 開發環境
系列文
30 天探索 MCP:從基礎概念到實作5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言